Ext.define('aps.comboProyecto', {
    extend: 'Ext.form.ComboBox',
    alias:  'aps.comboProyecto',
    
    id:             'combo-proyecto',
    name:           'combo-proyecto',
    fieldLabel:     '<b>Proyecto Actual</b>',
    emptyText:      'Seleccione un proyecto ...',
    displayField:   'proyecto_rol',
    valueField:     'proyecto_rol',
    triggerAction:  'all',
    forceSelection: true,
    editable:       false,
    queryMode :     'remote',
    width:          450,
    
    initComponent: function() {
        this.listConfig = {
            getInnerTpl: function() {
                return '<div data-qtip="<b>ID Proyecto:</b>{idproyecto}<br/><b>Proyecto:</b>{proyecto}<br/><b>ID Rol:</b>{idrol}<br/><b>Rol:</b>{rol}<br/><b>Estado:</b>{estado}"><b>{proyecto}</b> - <i>{rol}</i></div>';
            }
        }
        this.store = Ext.create('Ext.data.Store',{
            fields: [
                {name:'idproyecto',   type:'string'},
                {name:'proyecto',     type:'string'},
                {name:'estado',       type:'string'},
                {name:'idrol',        type:'string'},
                {name:'rol',          type:'string'},
                {name:'proyecto_rol', type:'string'}
            ],
            proxy: {
                type: 'ajax',
                url:  '/llenar_combo_proyecto',
                reader: {
                    type: 'json',
                    root: 'data',
                    totalProperty: 'total'
                }
            }
        });
        this.listeners = {
            select : function(combo, records, opts){
                var idrol      = records[0].data.idrol
                var idproyecto = records[0].data.idproyecto;
                // Pedimos la lista de permisos codificados para el proyecto seleccionado
                Ext.Ajax.request({
                    url:    '/consulta_acciones',
                    params: {
                        idrol : idrol
                    },
                    success: function(response, opts) {
                        var obj = Ext.decode(response.responseText);
                        // Ponemos el combo de fase en condiciones
                        var combo_fase = Ext.getCmp('combo-fase');
                        combo_fase.clearValue();
                        combo_fase.lastQuery = null;
                        combo_fase.store.removeAll();
                        combo_fase.disable();
                        // Cambiamos la interfaz
                        Ext.getCmp('funcionalidades').permisos = obj.data;
                        Ext.getCmp('funcionalidades').cambiar_funcionalidades([0,1]);
                        if(combo_fase.enable){
                            combo_fase.store.load({
                                params : {
                                    idproyecto : idproyecto,
                                    idrol      : idrol
                                }
                            });
                        }
                    }
                });
            }
        }
        this.callParent(arguments);
    }
});
